//
//  BaseTableViewController.swift
//  ShangYouNews
//
//  Created by leecong on 2017/5/3.
//  Copyright © 2017年 baymax. All rights reserved.
//

import UIKit

class BaseTableViewController: BaseViewController, UITableViewDelegate, UITableViewDataSource {

    var tableView : BaseTableView!
    var pageindex = 0
    var pagesize = 20
    
    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
        initTableView()
    }
    
    func initTableView(style: UITableViewStyle = .plain) {
        if tableView == nil {
            tableView = BaseTableView(frame: CGRect.zero, style: style)
            tableView.rowHeight = UITableViewAutomaticDimension
            tableView.dataSource = self
            tableView.delegate = self
            tableView.separatorStyle = .none
            self.view.insertSubview(tableView, at: 0)
            tableView.snp.makeConstraints { (make) in
                make.edges.equalTo(UIEdgeInsets.zero)
            }
        }
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    //MARK: tableView相关方法
    open func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        return UITableViewCell()
    }
    
    open func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

extension BaseTableViewController {
    //MARK: - 表格操作操作相关
    /// 删除刷新头部
    func removeRefreshHeader() {
        self.tableView.removeRefreshHeader()
    }
    /// 删除刷新底部
    func removeRefreshFooter() {
        self.tableView.removeRefreshFooter()
    }
    /// 自动刷新
    func autoPullToRefresh() {
        self.tableView.autoPullToRefresh()
    }
    /// 开始刷新动画
    func startPullToRefresh() {
        self.tableView.startPullToRefresh()
    }
    /// 停止刷新动画
    func stopPullToRefresh(completBlock:(()->Void)? = nil) {
        self.tableView.stopPullToRefresh(completBlock: completBlock)
    }
    /// 停止加载更多动画
    func stopLoadingMore(_ string: String = "上拉加载更多") {
        self.tableView.stopLoadingMore(string)
    }
    
    /// 通知无更多内容
    func noticeNoMoreData(_ string: String = "已加载全部内容") {
        self.tableView.noticeNoMoreData(string)
    }
}
